Forwarded from Sadra Codes
یه مقاله خیلی جمع و جور نوشتم واستون. اگه به مبحث type hinting علاقه دارین، توی این مقاله راجع به Generic Typing توی پایتون نوشتم. دقیقا سینتکس زیر و اون
اینکه چیه و چیکار میکنه به همراه کلی مثال و تمرین کوچیک که درک این قضیه رو واستون سادهتر میکنه.
Read 👉 https://blog.imsadra.me/generic-typing-in-python
این سینتکس در ورژن ۳.۱۲ معرفی شد. در رلیزهای بعدی پایتون، خواهید دید که خیلی از این سینتکس استفاده میشه.
[T]
که گاها ممکنه گیج کننده باشه:def function[T](...) -> T:
...
اینکه چیه و چیکار میکنه به همراه کلی مثال و تمرین کوچیک که درک این قضیه رو واستون سادهتر میکنه.
Read 👉 https://blog.imsadra.me/generic-typing-in-python
این سینتکس در ورژن ۳.۱۲ معرفی شد. در رلیزهای بعدی پایتون، خواهید دید که خیلی از این سینتکس استفاده میشه.
The Oxidation Compiler is creating a collection of high-performance tools for JavaScript and TypeScript.
Oxc is building a parser, linter, formatter, transformer, minifier, resolver ... all written in Rust.
حقیقتش تست نکردم. ولی readme خیلی جالبی داره. یک سر بزنید بهش
https://github.com/oxc-project/oxc
@PyBackendHub
Oxc is building a parser, linter, formatter, transformer, minifier, resolver ... all written in Rust.
حقیقتش تست نکردم. ولی readme خیلی جالبی داره. یک سر بزنید بهش
https://github.com/oxc-project/oxc
@PyBackendHub
GitHub
GitHub - oxc-project/oxc: ⚓ A collection of JavaScript tools written in Rust.
⚓ A collection of JavaScript tools written in Rust. - oxc-project/oxc
#آف_تاپیک #موقت
استارت آپ من دنبال UI UX دیزاینری هست که زبان انگلیسی بلد باشه. متن آگهی:
-------------
پوزیشن: UI/UX Designer
محل کار: ریموت
درباره پروداکت:
فیر تو بات یک پروداکت B2B هست که با ارائه API و داشبورد، به کسبوکارها امکان میدهد بهطور خودکار با بازیهای آنلاین تعامل داشته باشند و انتقال ارزهای دیجیتال درون بازی را خودکار کنند. پلتفرم ما به شرکتها کمک میکند تا فرآیندهای مرتبط با ارزهای بازی را بهینهسازی کنند و هزینه ها را کاهش بدهند و تجربه کاربری بهتری را برای مشتریان خود فراهم نمایند.
ما به دنبال یک طراح UI/UX هستیم که بتواند طراحیهای تجربه کاربری را از ابتدا تا انتها انجام دهد و با انجام تحقیقات دقیق، به بهبود مستمر پلتفرم ما کمک کند. کاندیدای ایدهآل باید دارای توانایی ایجاد رابطهای کاربری جذاب و کاربرپسند باشد و بتواند نیازهای کسبوکارهای ما را در طراحیهای خود به خوبی منعکس کند.
وظایف:
- Design and refine intuitive, user-centered UI/UX solutions with a focus on simplicity and functionality.
- Collaborate with developers to translate designs into interactive prototypes and final implementations using Figma.
- Conduct user research, usability testing, and analyze feedback to identify and prioritize design improvements.
- Create data-driven visuals, including analytics dashboards and complex UI components.
- Facilitate user interviews and workshops in English to gather requirements and enhance the user experience.
نیازمندی ها:
- Proven experience in UI/UX design.
- Proficiency in Figma.
- Good communication skills in English, both written and verbal.
- Strong research and problem-solving abilities with an independent and proactive approach
- In-depth understanding of UX principles, information architecture, and end-to-end design processes.
آنچه ما ارائه می دهیم:
- Innovative work environment: Freedom to explore without tight deadlines
- Remote work flexibility
در صورت تمایل لطفا رزومه و portfolio در آدرس زیر وارد فرمایین.
https://forms.gle/LqPJEfccL9mB1XxRA
@PyBackendHub
استارت آپ من دنبال UI UX دیزاینری هست که زبان انگلیسی بلد باشه. متن آگهی:
-------------
پوزیشن: UI/UX Designer
محل کار: ریموت
درباره پروداکت:
فیر تو بات یک پروداکت B2B هست که با ارائه API و داشبورد، به کسبوکارها امکان میدهد بهطور خودکار با بازیهای آنلاین تعامل داشته باشند و انتقال ارزهای دیجیتال درون بازی را خودکار کنند. پلتفرم ما به شرکتها کمک میکند تا فرآیندهای مرتبط با ارزهای بازی را بهینهسازی کنند و هزینه ها را کاهش بدهند و تجربه کاربری بهتری را برای مشتریان خود فراهم نمایند.
ما به دنبال یک طراح UI/UX هستیم که بتواند طراحیهای تجربه کاربری را از ابتدا تا انتها انجام دهد و با انجام تحقیقات دقیق، به بهبود مستمر پلتفرم ما کمک کند. کاندیدای ایدهآل باید دارای توانایی ایجاد رابطهای کاربری جذاب و کاربرپسند باشد و بتواند نیازهای کسبوکارهای ما را در طراحیهای خود به خوبی منعکس کند.
وظایف:
- Design and refine intuitive, user-centered UI/UX solutions with a focus on simplicity and functionality.
- Collaborate with developers to translate designs into interactive prototypes and final implementations using Figma.
- Conduct user research, usability testing, and analyze feedback to identify and prioritize design improvements.
- Create data-driven visuals, including analytics dashboards and complex UI components.
- Facilitate user interviews and workshops in English to gather requirements and enhance the user experience.
نیازمندی ها:
- Proven experience in UI/UX design.
- Proficiency in Figma.
- Good communication skills in English, both written and verbal.
- Strong research and problem-solving abilities with an independent and proactive approach
- In-depth understanding of UX principles, information architecture, and end-to-end design processes.
آنچه ما ارائه می دهیم:
- Innovative work environment: Freedom to explore without tight deadlines
- Remote work flexibility
در صورت تمایل لطفا رزومه و portfolio در آدرس زیر وارد فرمایین.
https://forms.gle/LqPJEfccL9mB1XxRA
@PyBackendHub
کمی آف تاپیک, یک مدته هوس لینوکس کرده بودم از MacOS خسته شدم.
یک PC کوچیک گرفتم از اینا که تو یک دست جا میشه. وزنش ۱ کیلو هست. با این مشخصات:
RAM: 32GB DDR5
CPU: AMD Ryzen 9, 8 core 16 thread 4.9 GHz
Storage: 1TB SSD NVMe PCIE x 4
Graphics Coprocessor: AMD Radeon 680M 12 cores 2400 MHz
Frequency
Display port: USB 4, HDMI, DP
قیمت چقدر؟ فقط ۴۰۰ یورو 😂 اینقدر ارزونه که دارم شک میکنم واقعا کار کنه :)) شنبه دستم میرسه ایشالا.
اسم برندش BOSGAME هست که اصلا آشنایی ندارم.
@PyBackendHub
یک PC کوچیک گرفتم از اینا که تو یک دست جا میشه. وزنش ۱ کیلو هست. با این مشخصات:
RAM: 32GB DDR5
CPU: AMD Ryzen 9, 8 core 16 thread 4.9 GHz
Storage: 1TB SSD NVMe PCIE x 4
Graphics Coprocessor: AMD Radeon 680M 12 cores 2400 MHz
Frequency
Display port: USB 4, HDMI, DP
قیمت چقدر؟ فقط ۴۰۰ یورو 😂 اینقدر ارزونه که دارم شک میکنم واقعا کار کنه :)) شنبه دستم میرسه ایشالا.
اسم برندش BOSGAME هست که اصلا آشنایی ندارم.
@PyBackendHub
Python BackendHub
کمی آف تاپیک, یک مدته هوس لینوکس کرده بودم از MacOS خسته شدم. یک PC کوچیک گرفتم از اینا که تو یک دست جا میشه. وزنش ۱ کیلو هست. با این مشخصات: RAM: 32GB DDR5 CPU: AMD Ryzen 9, 8 core 16 thread 4.9 GHz Storage: 1TB SSD NVMe PCIE x 4 Graphics Coprocessor:…
چند نفر پرسیدن, اسمش BOSGAME P3 Mini PC هست. شاید ۴۰۰ یورو گیرتون نیاد چون قیمت واقعیش ۴۷۰-۵۰۰ یوروعه, من با تخفیف موقت رو آمازون و voucher ای که بهم داد اینو گرفتم.
@PyBackendHub
@PyBackendHub
Forwarded from Python BackendHub (Mani)
سلام خدمت دوستان. حدودا ۱ سال از تاسیس کانال میگذره. برای همین این پستو میذارم که پین بمونه تا سال دیگه😁
اولا که من هیچ تبلیغی انجام نمیدم. لطفا برای این موضوع مراجعه نکنید.
دوما چند تا از دوستان این هفته لطف داشتن از من بخوان که منتورشون بشم و هزینه بدن. من منتورشیپ انجام نمیدم چون متاسفانه وقتشو ندارم, ولی هم سایت رایگان هست برای اینکار و هم اینکه من تو گروه و داخل پی وی جواب میدم و کمکی از دستم بیاد حتما انجام میدم.
سوما بهتره سوالتون رو تو گروه بپرسید چون اونجا افراد بیشتری هستن و نظرات من ممکنه bias باشه و یا اشتباه باشه. ولی باز اگه به هر دلیلی نمیخواستین داخل گروه بپرسید داخل پیوی هم پاسخ میدم.
داخل پست بعد گلچین پست ها و مطالب کانال رو میذارم. و اینو آپدیت میکنم هر از گاهی. فعالیت و تولید محتوا من همیشه به صورت رایگان بوده و خواهد ماند.
من مانی هستم. از سال ۲۰۲۰ برنامه نویسی رو به طور حرفه ای شروع کردم. قبلا پروداکت داشتم و به صورت تیمی روش کار میکردیم.البته الانم هستم ولی دیگه کاره تمام وقتم نیست. الان ۲ سالیه داخل یک استارت آپ آلمانی به عنوان مهندس نرم افزار کار میکنم و برلین زندگی میکنم. تجاربم بیشتر سمت بک اند, فرانت, تست نرم افزار (QA) و وب اسکرپ, و کمی آپریشن (ci/cd, observation, orchestration) هست. زبونی که باهاش کار میکنم پایتون و تایپ اسکریپت هست و در حال یادگیری rust هستم.
یوتیوب من:
https://www.youtube.com/@GitOverHere
لینکدین من:
https://www.linkedin.com/in/manimozaffar/
گیت هاب من:
https://github.com/manimozaffar
@PyBackendHub
اولا که من هیچ تبلیغی انجام نمیدم. لطفا برای این موضوع مراجعه نکنید.
دوما چند تا از دوستان این هفته لطف داشتن از من بخوان که منتورشون بشم و هزینه بدن. من منتورشیپ انجام نمیدم چون متاسفانه وقتشو ندارم, ولی هم سایت رایگان هست برای اینکار و هم اینکه من تو گروه و داخل پی وی جواب میدم و کمکی از دستم بیاد حتما انجام میدم.
سوما بهتره سوالتون رو تو گروه بپرسید چون اونجا افراد بیشتری هستن و نظرات من ممکنه bias باشه و یا اشتباه باشه. ولی باز اگه به هر دلیلی نمیخواستین داخل گروه بپرسید داخل پیوی هم پاسخ میدم.
داخل پست بعد گلچین پست ها و مطالب کانال رو میذارم. و اینو آپدیت میکنم هر از گاهی. فعالیت و تولید محتوا من همیشه به صورت رایگان بوده و خواهد ماند.
من مانی هستم. از سال ۲۰۲۰ برنامه نویسی رو به طور حرفه ای شروع کردم. قبلا پروداکت داشتم و به صورت تیمی روش کار میکردیم.البته الانم هستم ولی دیگه کاره تمام وقتم نیست. الان ۲ سالیه داخل یک استارت آپ آلمانی به عنوان مهندس نرم افزار کار میکنم و برلین زندگی میکنم. تجاربم بیشتر سمت بک اند, فرانت, تست نرم افزار (QA) و وب اسکرپ, و کمی آپریشن (ci/cd, observation, orchestration) هست. زبونی که باهاش کار میکنم پایتون و تایپ اسکریپت هست و در حال یادگیری rust هستم.
یوتیوب من:
https://www.youtube.com/@GitOverHere
لینکدین من:
https://www.linkedin.com/in/manimozaffar/
گیت هاب من:
https://github.com/manimozaffar
@PyBackendHub
Telegram
Python Backend Fellow
گروه رفع اشکال و بحث در مورد Backend Engineering و پایتون
Channel: @PyBackEndHub
Channel: @PyBackEndHub
گلچین مطالب کانال.
۱. رزومه نویسی و کار یافتن
دوره رزومه نویسی و رشد در مسیر شغلی
چند درصد آگهی رو خوب بلدیم رزومه بفرستیم؟راهنما عملکرد بهتر در مصاحبه ها
قدم های مورد نیاز برای مهاجرت
ریپازیتوری آموزش رزومه نویسی با بیش از ۲۰۰ استار
معرفی ریسورس برای مصاحبه و بهتر کردن رزومه
۲. دوره های آموزشی در یوتیوب
دوره SQLAlchemy
دوره دیزاین پترن
دوره تست نویسی
@PyBackendHub
۱. رزومه نویسی و کار یافتن
دوره رزومه نویسی و رشد در مسیر شغلی
چند درصد آگهی رو خوب بلدیم رزومه بفرستیم؟راهنما عملکرد بهتر در مصاحبه ها
قدم های مورد نیاز برای مهاجرت
ریپازیتوری آموزش رزومه نویسی با بیش از ۲۰۰ استار
معرفی ریسورس برای مصاحبه و بهتر کردن رزومه
۲. دوره های آموزشی در یوتیوب
دوره SQLAlchemy
دوره دیزاین پترن
دوره تست نویسی
@PyBackendHub
YouTube
رشد در مسیر شغلی - دنیای نرم افزار
Share your videos with friends, family, and the world
چون کانال رشد زیادی داشته این چند وقت, مجددا این پست هارو میفرستم که دوستان جدید هم با من آشنا شن و هم گلچین مطالبی که تا امروز معرفی شده داشته باشند.
لینک گروه کانال
@PyBackendHub
لینک گروه کانال
@PyBackendHub
Telegram
Python Backend Fellow
گروه رفع اشکال و بحث در مورد Backend Engineering و پایتون
Channel: @PyBackEndHub
Channel: @PyBackEndHub
#داستان_واقعی
امروز تو گروه یک آدمی از جانب شرکت vectordbcloud اومد و ۱۶ موقعیت شغلی گذاشتن همه کارآموز و بدون حقوق! فردی که این آگهی رو گذاشته بود تلگرامش هویت نداشت. لینکندین استارت آپشون رو پیدا کردم, سایز شرکت یک نفره :))
خواهشا به وقتتون احترام بذارین. کارآموزی بدون حقوق انجام ندید. تو بدترین شرایط حقتون حداقل حقوق هست! بدون حقوق تو هرجای دنیا استخدام کنند جرم محسوب میشه.
و کسی که حاضر نیست یک ریال خرج کنه, برای شما یک محیطی نمیسازه که توش رشد کنید.
@PyBackendHub
امروز تو گروه یک آدمی از جانب شرکت vectordbcloud اومد و ۱۶ موقعیت شغلی گذاشتن همه کارآموز و بدون حقوق! فردی که این آگهی رو گذاشته بود تلگرامش هویت نداشت. لینکندین استارت آپشون رو پیدا کردم, سایز شرکت یک نفره :))
خواهشا به وقتتون احترام بذارین. کارآموزی بدون حقوق انجام ندید. تو بدترین شرایط حقتون حداقل حقوق هست! بدون حقوق تو هرجای دنیا استخدام کنند جرم محسوب میشه.
و کسی که حاضر نیست یک ریال خرج کنه, برای شما یک محیطی نمیسازه که توش رشد کنید.
@PyBackendHub
یک پروژه از یکی از دوستان 👇👇
نحوه نصب و راه اندازی سیستم توسعه منابع سازمانی و حسابداری #odoo رو تو سیستم های ubuntu,centos و windows به همراه ارور ها و چالش هایی که میتونه داشته باشه و همچنین پرزنتیشنش رو ریپازیتوری کردم تا به راحتی بتونید نصب کنید.
لینک مخزن:
Https://github.com/AmirakbariSXL/Odoo-Installation
#ERP
#Odoo
@PyBackendHub
نحوه نصب و راه اندازی سیستم توسعه منابع سازمانی و حسابداری #odoo رو تو سیستم های ubuntu,centos و windows به همراه ارور ها و چالش هایی که میتونه داشته باشه و همچنین پرزنتیشنش رو ریپازیتوری کردم تا به راحتی بتونید نصب کنید.
لینک مخزن:
Https://github.com/AmirakbariSXL/Odoo-Installation
#ERP
#Odoo
@PyBackendHub
GitHub
GitHub - AmirakbariSXL/Odoo-Installation: Odoo 17 Installation Guide: This repository provides a step-by-step guide for installing…
Odoo 17 Installation Guide: This repository provides a step-by-step guide for installing Odoo 17 on Ubuntu 22.04, CentOS 8, and Windows. Features: Installation instructions for Odoo 17 on Linux (U...
Don't do this - PostgreSQL
بعضی چیزا رو نمیدونستم جالب بود. مثلا اینکه اسم تیبل snake case باشه یا pascal case فکر میکردم کاملا سلیقه ای هست.
@PyBackendHub
بعضی چیزا رو نمیدونستم جالب بود. مثلا اینکه اسم تیبل snake case باشه یا pascal case فکر میکردم کاملا سلیقه ای هست.
@PyBackendHub
۲ سال پیش، در همین روز gpt منتشر شد. ۲ سال گذشته و هنوز بعضیا نگرانن جاشون رو GPT ممکنه بگیره تقریبا این سوالو روزی ۱۰ بار میشنوم. اما حقیقت اینه که GPT در حال حاضر یک درصد کاره پروداکت هم نتونسته بکنه بعد از ۲ سال توسعه. توسعه یک پروداکت تو یک تیم پروداکت چطوریه؟
یک تیم دیزان هست، که user research انجام میده. سعی میکنه نیاز کاربر رو متوجه شه و یک راهکار خلاقانه ارائه میده، که تو پروداکت های موفق معمولا راهکار نوین و جدید هست. یک جاهایی تیم دیزاین باید با تیم توسعه صحبت کنه و جلسه بذاره که درک کنه نرم افزار الان چطوری کار میکنه و چه چیزایی ممکنه انجام دادنش. این جلسات توسط تیم دیزاین شکل میگیره.
ایا gpt میتونه ریسرچ کنه؟ نه آیا gpt میتونه یک design problem رو حل کنه؟ نه ایا gpt خلاقیت داره؟ نه ایا gpt میتونه به صورت pro active اون جلسات و ارتباطات رو با تیم توسعه داشته باشه؟ نه
میرسیم به مرحله توسعه،
تیم توسعه دیزاین رو میبینه. دوباره ارزیابی میکنه. ادج کیس هارو بررسی میکنه. ادج کیس ها دو دسته هستن، یا تکنیکال هستن یا بیزنس. با راه حل دادن و پلن توسعه فیچر، تیم توسعه دهنده کارشو شروع میکنه. معمولا ۷۰-۸۰ درصد سختی کار، تو حل کردن مشکلات بیزنسیه که راه حل دقیق و درستی ندارن. راه حل زیاده و بر اساس خلاقیت توسعه دهنده، میتونه گزینه بهتر همیشه وجود داشته باشه
ایا gpt میتونه ادج کیس تکنیکال یا بیزنس رو متوجه نشه؟ نه ایا میتونه خلاقیت داشته باشه تو حل کردن مشکل بیزنسی؟ نه و …
من تا صبح میتونم این رو ادامه بدم… برای همین gpt الان نیم درصد تیم پروداکت هم نیست و یک سری کار های تکراری و حوصله سربر رو اتوماتیک تر کرده. اگه واقعا فکر میکنید gpt الان جاتون رو پرکرده، واقعا باید به مهارتتون شک کنید….
هر کدوم از این استیج های توسعه پروداکت، باید نوشته شه توسط یک شرکتی. تبدیل شه به یک پروداکت، مارکت رو قانع کنه استفادش کنند. و کار کنه. بنظرتون شرکتی تو دنیا هست که تو چند سال بتونه همه این فیچر هارو stable بده بیرون تست شده و فراگیر شده با هزینه معقول؟
@PyBackendHub
یک تیم دیزان هست، که user research انجام میده. سعی میکنه نیاز کاربر رو متوجه شه و یک راهکار خلاقانه ارائه میده، که تو پروداکت های موفق معمولا راهکار نوین و جدید هست. یک جاهایی تیم دیزاین باید با تیم توسعه صحبت کنه و جلسه بذاره که درک کنه نرم افزار الان چطوری کار میکنه و چه چیزایی ممکنه انجام دادنش. این جلسات توسط تیم دیزاین شکل میگیره.
ایا gpt میتونه ریسرچ کنه؟ نه آیا gpt میتونه یک design problem رو حل کنه؟ نه ایا gpt خلاقیت داره؟ نه ایا gpt میتونه به صورت pro active اون جلسات و ارتباطات رو با تیم توسعه داشته باشه؟ نه
میرسیم به مرحله توسعه،
تیم توسعه دیزاین رو میبینه. دوباره ارزیابی میکنه. ادج کیس هارو بررسی میکنه. ادج کیس ها دو دسته هستن، یا تکنیکال هستن یا بیزنس. با راه حل دادن و پلن توسعه فیچر، تیم توسعه دهنده کارشو شروع میکنه. معمولا ۷۰-۸۰ درصد سختی کار، تو حل کردن مشکلات بیزنسیه که راه حل دقیق و درستی ندارن. راه حل زیاده و بر اساس خلاقیت توسعه دهنده، میتونه گزینه بهتر همیشه وجود داشته باشه
ایا gpt میتونه ادج کیس تکنیکال یا بیزنس رو متوجه نشه؟ نه ایا میتونه خلاقیت داشته باشه تو حل کردن مشکل بیزنسی؟ نه و …
من تا صبح میتونم این رو ادامه بدم… برای همین gpt الان نیم درصد تیم پروداکت هم نیست و یک سری کار های تکراری و حوصله سربر رو اتوماتیک تر کرده. اگه واقعا فکر میکنید gpt الان جاتون رو پرکرده، واقعا باید به مهارتتون شک کنید….
هر کدوم از این استیج های توسعه پروداکت، باید نوشته شه توسط یک شرکتی. تبدیل شه به یک پروداکت، مارکت رو قانع کنه استفادش کنند. و کار کنه. بنظرتون شرکتی تو دنیا هست که تو چند سال بتونه همه این فیچر هارو stable بده بیرون تست شده و فراگیر شده با هزینه معقول؟
@PyBackendHub
Forwarded from Sadra Codes
استکی که ابتدای راه انتخاب میکنید خیلی خیلی مهمه و باید حسابی با تحقیق و برنامهریزی انتخابش کنید. آینده رو بسنجید. هدف خودتون رو بسنجید. صرف علاقه یا بدلیل سهولت یا محبوبیت، یک زبان رو انتخاب نکنید.
اینکه میگن یه زبان/فریمورک/ابزار رو که انتخاب کردید، تمام تمرکز رو بذارید روش و حسابی توش دیپ شید کاملا اشتباهه بنظرم.
شاید دیپ شدن در اون استک خاص خوب و مفید باشه، ولی به هیچ وجه تمام تمرکز رو روی اون نذارید. دقیقا مثل همون قضیه تخم مرغ و سبده. همیشه توی ساید داستان، یکی دوتا ابزار یا فریم ورک دیگه که زیاد ارتباطی به استک اصلیتون ندارن رو هم کار کنید و گاها جدی دنبالش کنید. بک اند پایتون کار میکنید؟ هرازگاهی یه دوتا توتوریال از ریکت یا نکست ببینید.
اینطوری اتفاقی که میوفته، هم دید بهتری واسه ادامه مسیر دارین، هم اگه استک اولی زیاد چنگی به دل نزد طی گذر زمان و شما رو به هدفتون نزدیک نکرد، حداقلش اینه که میتونید از ترکیب چند استکی که کار کردید خروجی بهتر و به نتیجه قابل قبولی برسید.
من اوایل که بعد از سالها پایتون کد زدن شروع کردم تایپ اسکریپت یاد گرفتن، بارها میشد که توی پایتون سعی میکردم مکانیزم هایی که سمت ریکت هستن رو پیاده کنم. همینجوری واسه خودم دکوریتورهایی طراحی میکردم تا کمبود typing پایتون رو نسبت به تایپ اسکریپت برطرف کنم. ( صرفا واسه تفریح)
گاها یهو دیدین که همین سیستم، خودش تونست تبدیل به یه ایده شه و روی ریپازیتوری پایتون (یا بلعکس) مرج شه حتی. اگه دقت کرده باشین خیلی از دولوپرهای پایتون اصلا استک اصلیشون پایتون نیس. مثلا طرف راست کد میزنه، میگه فلان چیزو اینجا داریم، شما هم اضافه کنید. (این سیستم واسه فیچر هایی که جدید رلیز میشن روی یه زبان خیلی جواب میده)
اینکه میگن یه زبان/فریمورک/ابزار رو که انتخاب کردید، تمام تمرکز رو بذارید روش و حسابی توش دیپ شید کاملا اشتباهه بنظرم.
شاید دیپ شدن در اون استک خاص خوب و مفید باشه، ولی به هیچ وجه تمام تمرکز رو روی اون نذارید. دقیقا مثل همون قضیه تخم مرغ و سبده. همیشه توی ساید داستان، یکی دوتا ابزار یا فریم ورک دیگه که زیاد ارتباطی به استک اصلیتون ندارن رو هم کار کنید و گاها جدی دنبالش کنید. بک اند پایتون کار میکنید؟ هرازگاهی یه دوتا توتوریال از ریکت یا نکست ببینید.
اینطوری اتفاقی که میوفته، هم دید بهتری واسه ادامه مسیر دارین، هم اگه استک اولی زیاد چنگی به دل نزد طی گذر زمان و شما رو به هدفتون نزدیک نکرد، حداقلش اینه که میتونید از ترکیب چند استکی که کار کردید خروجی بهتر و به نتیجه قابل قبولی برسید.
من اوایل که بعد از سالها پایتون کد زدن شروع کردم تایپ اسکریپت یاد گرفتن، بارها میشد که توی پایتون سعی میکردم مکانیزم هایی که سمت ریکت هستن رو پیاده کنم. همینجوری واسه خودم دکوریتورهایی طراحی میکردم تا کمبود typing پایتون رو نسبت به تایپ اسکریپت برطرف کنم. ( صرفا واسه تفریح)
گاها یهو دیدین که همین سیستم، خودش تونست تبدیل به یه ایده شه و روی ریپازیتوری پایتون (یا بلعکس) مرج شه حتی. اگه دقت کرده باشین خیلی از دولوپرهای پایتون اصلا استک اصلیشون پایتون نیس. مثلا طرف راست کد میزنه، میگه فلان چیزو اینجا داریم، شما هم اضافه کنید. (این سیستم واسه فیچر هایی که جدید رلیز میشن روی یه زبان خیلی جواب میده)
یکی از اشتباهات رایج و خیلی بد تو دیزاین دیتابیس که من دیدم خیلی انجام میدن اینه که سعی میکنن state یک entity رو با چند boolean ست کنند.
مثلا برای یوزر داریم:
is_active
is_banned
یا شما میتونی برای پردازش یک دیتایی اینطوری هم ذخیره کنی:
is_pending
is_success
اما خیلی پرکتیس بدیه. چرا؟ به ۲ دلیل:
۱. حالت هایی به وجود میاد از ترکیب این boolean ها که رخ دادنش ممکن نیست. مثلا چطوری میشه is_pending=true باشه و is_success هم true باشه؟ حالا هرچی جلوتر برید و تعداد boolean هاتون بیشتر شه این ترکیب هایی که امکان رخ دادنشون وجود نداره خیلی بیشتر میشه. مثلا ۴ تا boolean میشه ۱۶ حالت. آیا واقعا همه ۱۶ حالت رو دارین؟!
۲. راه حل دوم خیلی بهتره! راه حل دوم چیه؟استفاده از یک Enum تو دیتابیستون.
PENDING
SUCCESS
FAILED
حالا یک جایی نیازه که ایمیل بزنید اگه این پردازش موفقیت آمیز نبود. خیلی راحت میتونید رو همه حالت ها match case کنید. و در نهایت یک assert never هم قرار بدید.
اینطوری فردا اگه یک state جدید اضافه کنید به اپلیکیشنتون, همه جای کدتون ارور تایپینگ میخورید تا مجبور شید رفتار و ساید افکت state جدید رو تو همه جا هندل کنید.
@PyBackendHub
مثلا برای یوزر داریم:
is_active
is_banned
یا شما میتونی برای پردازش یک دیتایی اینطوری هم ذخیره کنی:
is_pending
is_success
اما خیلی پرکتیس بدیه. چرا؟ به ۲ دلیل:
۱. حالت هایی به وجود میاد از ترکیب این boolean ها که رخ دادنش ممکن نیست. مثلا چطوری میشه is_pending=true باشه و is_success هم true باشه؟ حالا هرچی جلوتر برید و تعداد boolean هاتون بیشتر شه این ترکیب هایی که امکان رخ دادنشون وجود نداره خیلی بیشتر میشه. مثلا ۴ تا boolean میشه ۱۶ حالت. آیا واقعا همه ۱۶ حالت رو دارین؟!
۲. راه حل دوم خیلی بهتره! راه حل دوم چیه؟استفاده از یک Enum تو دیتابیستون.
PENDING
SUCCESS
FAILED
حالا یک جایی نیازه که ایمیل بزنید اگه این پردازش موفقیت آمیز نبود. خیلی راحت میتونید رو همه حالت ها match case کنید. و در نهایت یک assert never هم قرار بدید.
اینطوری فردا اگه یک state جدید اضافه کنید به اپلیکیشنتون, همه جای کدتون ارور تایپینگ میخورید تا مجبور شید رفتار و ساید افکت state جدید رو تو همه جا هندل کنید.
match state:
case State.FAILED:
email_to_user()
case State.SUCCESS | State.FAILED:
pass # do nothing
case _:
assert_never(state)
@PyBackendHub
https://github.com/teamhanko/hanko
ایده pass-key رو خیلی دوست دارم. واقعا یوزرفرندلی و امنیت رو باهم تو یک level دیگه داره! اینم یک سرویس اوپن سورس برای اینکاره.
@PyBackendHub
ایده pass-key رو خیلی دوست دارم. واقعا یوزرفرندلی و امنیت رو باهم تو یک level دیگه داره! اینم یک سرویس اوپن سورس برای اینکاره.
@PyBackendHub
GitHub
GitHub - teamhanko/hanko: The Complete Authentication and User Management Solution for the Passkey Era. Open Source Alternative…
The Complete Authentication and User Management Solution for the Passkey Era. Open Source Alternative to Clerk, Auth0, et al. - teamhanko/hanko
Forwarded from Django Expert (Boby Cloud)
Python BackendHub
🚫 اگه مثل توضیحات بالا عمل میکنید، یک مهندس نرمافزار نیستید. ™️ @DjangoIR 〰️〰️〰️〰️〰️〰️ © @DjangoEx
خیلیا منظور این متن رو متوجه نشدن، قرار نیست شما انجین دیتابیس بنویسی. ولی همین که بدونی چیه و بتونی راجبش ۵ دقیقه حرف بزنی خیلی مهمه چون بیشتر روز باهاش درگیری. یا بهتره خوده raw sql رو یاد بگیری تا اینکه orm django رو بدون یاد گرفتن sql استفاده کنی ازش.
ایا میشه بدون دونستن sql از جنگو استفاده کرد؟ بله. آیا در این صورت شما skilled worker محسوبمیشین؟ نه.
خیلی وقتا ممکنه بخاطر دانش بیشترتون، یک راهکار بهتر به ذهنتون برسه که برد بزرگی رو برای بیزنس رقم بزنه. به خاطر دانش بیشترتون، کدتون ممکنه باگ کمتری داشته باشه که براتون پروموشن خواهد داشت. و …
نقل قول ازنظرر Kurt Guntheroth، با ۴۰ سال سابقه و نویسنده چند کتاب معروف:
Some software jobs you can get after a 2-year Associate’s Degree from a community college, or a 9-month boot camp, just like a blue-collar job.
Some software jobs don’t require much independent thought and analysis. How hard is it to arrange content on a web site? (Yes, I know, as hard as you want to make it. But not always).
Some software jobs are done in assembly-line fashion. Pull the next feature card off the stack and start coding, pull the next bug report off the list and start looking for a fix. Your job has no beginning and no end, just an endless stream of little tasks (called sprints), with no time to rest in between, just like a blue-collar job.
Some bosses of software people are Dickensian horrors, driving their team to work long, uncompensated hours. Never a word of praise, but the sure prospect of getting fired for not toeing the mark, just like a blue-collar job.
But those same bosses will insist software is a white collar job, because if it ever did become a blue-collar job, they would have to pay time-and-a-half for overtime (in the US).
I think what’s true is that the software profession is diverging into two levels of skill, professional software developers, and programmers. Once upon a time it was like this, but the original reason for programmers (typing code onto punch cards and running it on batch terminals) went away. Now we’ve got easy problems solved by programmers with limited education, and really hard problems, solved by highly educated and trained professionals.
@PyBackendHub
ایا میشه بدون دونستن sql از جنگو استفاده کرد؟ بله. آیا در این صورت شما skilled worker محسوبمیشین؟ نه.
خیلی وقتا ممکنه بخاطر دانش بیشترتون، یک راهکار بهتر به ذهنتون برسه که برد بزرگی رو برای بیزنس رقم بزنه. به خاطر دانش بیشترتون، کدتون ممکنه باگ کمتری داشته باشه که براتون پروموشن خواهد داشت. و …
نقل قول ازنظرر Kurt Guntheroth، با ۴۰ سال سابقه و نویسنده چند کتاب معروف:
Some software jobs you can get after a 2-year Associate’s Degree from a community college, or a 9-month boot camp, just like a blue-collar job.
Some software jobs don’t require much independent thought and analysis. How hard is it to arrange content on a web site? (Yes, I know, as hard as you want to make it. But not always).
Some software jobs are done in assembly-line fashion. Pull the next feature card off the stack and start coding, pull the next bug report off the list and start looking for a fix. Your job has no beginning and no end, just an endless stream of little tasks (called sprints), with no time to rest in between, just like a blue-collar job.
Some bosses of software people are Dickensian horrors, driving their team to work long, uncompensated hours. Never a word of praise, but the sure prospect of getting fired for not toeing the mark, just like a blue-collar job.
But those same bosses will insist software is a white collar job, because if it ever did become a blue-collar job, they would have to pay time-and-a-half for overtime (in the US).
I think what’s true is that the software profession is diverging into two levels of skill, professional software developers, and programmers. Once upon a time it was like this, but the original reason for programmers (typing code onto punch cards and running it on batch terminals) went away. Now we’ve got easy problems solved by programmers with limited education, and really hard problems, solved by highly educated and trained professionals.
@PyBackendHub